﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using FrameworkLib.Filters;
using LinqKit;
using GestionePolveri2.DAL;

namespace GestionePolveriLib.BL.FilterBags
{
    public class AnagraficaPolveriFilterBag : FilterBase<AnagPolveri>, IFilterBase
    {
        public string CodicePolvere { get; set; }
        public string CodiceColore { get; set; }
        public string Fornitore { get; set; }
        public string Famiglia { get; set; }

        public AnagraficaPolveriFilterBag()
        {
            InitializeFilter();
        }

        public void InitializeFilter()
        {

        }

        public override System.Linq.Expressions.Expression<Func<AnagPolveri, bool>> SetUpFilter()
        {
            var predicate = PredicateBuilder.True<AnagPolveri>();

            if (!string.IsNullOrWhiteSpace(CodicePolvere))
            {
                predicate = predicate.And(im => im.CodicePolvere == CodicePolvere);
            }

            if (!string.IsNullOrWhiteSpace(Fornitore))
            {
                predicate = predicate.And(im => im.AnagFornitori.Descrizione == Fornitore);
            }

            //if (!string.IsNullOrWhiteSpace(Famiglia))
            //{
            //    predicate = predicate.And(im => im.ComposizioneColori.Select(c => c.AnagColori.AnagFamiglie.Descrizione == Famiglia));
            //}

            //if (!string.IsNullOrWhiteSpace(CodiceColore))
            //{
            //    predicate = predicate.And(im => im.ComposizioneColori.Contains();
            //}

            return predicate;
        } 
    }
}
